home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (PO) / Nibble Volume 11, No. 04 - 05 - 06 (1990)(MindCraft Publishing)[no boot].zip / Nibble Volume 11, No. 04 - 05 - 06 (1990)(MindCraft Publishing)[no boot].po / NIBBLE.1990:APR.VOL11.NO04 / ML.INTEGRATOR.S < prev    next >
Text File  |  1996-12-24  |  3KB  |  119 lines

  1. ********************************
  2. *                              *
  3. * ML.INTEGRATOR SOURCE CODE    *
  4. *                              *
  5. * BY Stephen M. Hall           *
  6. * Copyright(c) 1990            *
  7. * MindCraft Publ. Corp.        *
  8. * Concord, MA 01742            *
  9. *                              *
  10. ********************************
  11. *
  12. ********************************
  13. * Merlin Assembler             *
  14. ********************************
  15. *
  16.           ORG $801
  17. *
  18. * EQUATES *
  19. *
  20. TXTTAB    EQU $67
  21. BUF       EQU $200
  22. DOSVEC    EQU $3D0
  23. RUN       EQU $D566
  24. *
  25. ********************************
  26. *          SECTION 1           *
  27. ********************************
  28. *
  29. BGN       JMP STARTUP
  30. *
  31. *
  32. ********************************
  33. * MACHINE LANGUAGE SUBROUTINES *
  34. ********************************
  35. *
  36. * Your various subroutines, whatever they may
  37. * be, go here.  Notice that the very first
  38. * statement will be at address $804, or
  39. * at decimal 2052.
  40. *
  41. *
  42. ********************************
  43. *          SECTION 2           *
  44. ********************************
  45. *
  46. QUIT      LDA #>BGN      ; Reset Applesoft pointer
  47.           STA TXTTAB+1   ; to normal spot
  48.           LDA #<BGN
  49.           STA TXTTAB
  50.           LDA #0         ; and simulate "NEW"
  51.           STA BGN
  52.           STA BGN+1
  53.           STA BGN+2
  54.           JMP DOSVEC     ; Exit via DOS vector
  55. *
  56. *
  57. ********************************
  58. *          SECTION 3           *
  59. ********************************
  60. *
  61. * This section gets written over by your BASIC program
  62. *
  63. PGRM      BRK            ; APPLESOFT program that
  64.           DA PGRM1       ; RUNS the main program
  65.           HEX 0A00       ; module
  66.           HEX BA         ; Token for "PRINT"
  67.           HEX 2204       ; Quote and <CTRL/D>
  68.           ASC 'RUN PROGRAM.NAME'
  69.           HEX 00         ; end of statement
  70. PGRM1     BRK
  71.           BRK
  72. *
  73. *
  74. ********************************
  75. *          SECTION 4           *
  76. ********************************
  77. *
  78. STARTUP   LDA #>PGRM+1   ; program stats here by
  79.           STA TXTTAB+1   ; adjusting the APPLESOFT pointer.
  80.           LDA #<PGRM+1   ; BASIC programs will subsequently
  81.           STA TXTTAB     ; LOAD at location PGRM+1
  82. *
  83.           LDA #>QUIT     ; change entry JMP to point
  84.           STA BGN+2      ; to subroutine that restores
  85.           LDA #<QUIT     ; normal Applesoft program
  86.           STA BGN+1      ; pointers.
  87. *
  88. *
  89. ********************************
  90. *          SECTION 5           *
  91. ********************************
  92. *
  93.           LDA $BF00      ; Get MLI vector jmp
  94.           CMP #$4C       ; Is it a Jump?
  95.           BNE NOPRODOS   ; Assume DOS 3.3 or equal
  96. *
  97. * Store command string in input buffer
  98. *
  99. PRO       LDX CMD
  100.           INX
  101.           LDA #$8D       ; C/R
  102. STR       STA BUF-1,X
  103.           DEX
  104.           BEQ RUNPRO
  105.           LDA CMD+1,X
  106.           JMP STR
  107. *
  108. CMD       DA 16          ; No. of character in string
  109.           ASC "RUN PROGRAM.NAME" ; ASC string, hi-bit set
  110. *
  111. *
  112. RUNPRO    JSR $BE03      ; BI Vector
  113.           LDA $BE0F      ; error code
  114.           JSR $BE0C      ; print error
  115.           RTS            ; return to BASIC
  116. *
  117. NOPRODOS  JMP RUN        ; DOS 3.3/Applesoft RUN command
  118.           BRK
  119.